package com.vhall.component.service.inav;

import com.vhall.component.entity.inav.vo.AgreeApplyReqVO;
import com.vhall.component.entity.inav.vo.ApplyReqVO;
import com.vhall.component.entity.inav.vo.CancelApplyReqVO;
import com.vhall.component.entity.inav.vo.RejectApplyReqVO;
import com.vhall.component.plugin.common.support.VssToken;

/**
 * 报名表单, 观看限制
 *
 * @author yongzheng.xu
 * @date 2021/6/23 18:07
 */
public interface ApplyService {

    /**
     * 申请上麦
     *
     * @param reqVO     参数
     * @param tokenInfo 用户信息
     * @return 返回值
     */
    Boolean apply(ApplyReqVO reqVO, VssToken tokenInfo);

    /**
     * 取消上麦申请
     *
     * @param reqVO     参数
     * @param tokenInfo 用户信息
     * @return 返回值
     */
    Boolean cancelApply(CancelApplyReqVO reqVO, VssToken tokenInfo);

    /**
     * 同意上麦申请
     *
     * @param reqVO     参数
     * @param tokenInfo 用户信息
     * @return 返回值
     */
    Boolean agreeApply(AgreeApplyReqVO reqVO, VssToken tokenInfo);

    /**
     * 拒绝上麦申请
     *
     * @param reqVO     参数
     * @param tokenInfo 用户信息
     * @return 返回值
     */
    Boolean rejectApply(RejectApplyReqVO reqVO, VssToken tokenInfo);

}
